RiverSync
SPEC-APP-PIP · v0.14
29 June 2026
Owner: Platform team

Pipeline — product requirements

pipeline.riversync.com — RiverSync's sales workspace: the CRM contact graph, the lead inbox and opportunities, quotes and the deal pipeline for converged micro data centers and maintenance agreements.

DraftPrototyped (initial)
Inherits the master PRD. RiverSync only (master AUTH-2): requires a riversync-tenant account holding the sales or admin role; the riversync permission matrix (SPEC-APP-ACC ACC-4) gates quotes and pipeline separately.

1Requirements

PIP-1

Quotes — create and send quotes for devices (frigo / koelkast line) and maintenance agreements; quote lines carry per-device agreement tiers.

PIP-2

Pipeline — deals by stage with forecasts; a won deal hands off to Admin provisioning and creates the device's first maintenance agreement.

PIP-3

Partner-sold deals — deals can be attributed to a partner; winning one creates or extends that partner's coverage link with the customer (master PRT-1).

PIP-4

Channel chain on every deal — reseller → distributor → RiverSync, or reseller → RiverSync direct (master PRT-11). RiverSync can allocate the distributor and overrule the reseller's choice at any time — reallocation to another distributor included; every change is audited.

PIP-5

Direct exceptions are per deal — granted by RiverSync case by case, recorded on the deal (who granted, when); there is no standing per-partner direct flag. A deal cannot close direct without one.

PIP-6

Registration intake — reseller-registered deals (PAR-6) land in an intake stage for RiverSync qualification before they join the forecast funnel.

PIP-7

Deferred past the initial prototype — channel surface not built. Reseller tier review & grant. RiverSync owns the reseller program tier (master PRT-14, PRT-16). A channel review surface shows each reseller's balanced scorecard — certified engineers, trailing-12-month closed-deal revenue, customer satisfaction / on-time SLA — flags those eligible for the next level, and lets a RiverSync user grant · hold · downgrade the tier at the quarterly review. Each decision writes a PartnerTierReview record and emits partner.tier-changed on a grant; the reseller sees progress only (PAR-4). Tier never changes without a recorded review.

PIP-8

Deferred past the initial prototype — channel surface not built. Reseller→distributor conversion. RiverSync can convert a qualifying reseller — typically a strong Platinum reseller with the logistics, volume and regional coverage to supply others — into a distributor (master PRT-17). The action flips the subtype, clears the program tier (distributors hold no tier), reconciles the org's open reseller-attributed deals, and registers the distribution agreements (PRT-10) that stand it up as a distributor. Manual, RiverSync-initiated and audited (partner.subtype-changed); never self-served.

PIP-9

Contacts — the relationship graph. A centralized directory of the organizations and people we deal with (master SAL-1); opening a contact resolves its hierarchy (group of companies, employer, reporting line) and its wider relationships, and the graph is queryable top-down to deep-dive a prospect. The contact graph is distinct from tenancy and bridges to a customer Tenant / user only on conversion (SAL-2).

PIP-10

Leads — the inbound inbox. Every net-new inquiry across the six sources (online-form · telephone · showroom · trade-show · social · partner) lands here (master SAL-3, SAL-4); a sales user triages, assigns an owner, and — reusing the tier benefit — may share a lead to a partner to follow up (SAL-7). Reseller registrations (PAR-6) arrive in this queue too (supersedes the standalone intake of PIP-6).

PIP-11

Qualify & convert. Qualifying a lead and converting it opens an Opportunity and resolves the customer — matching an existing customer organization or creating one (master SAL-5); the conversion is one-way and recorded.

PIP-12

Opportunities & variants. Shape a pursuit by quantifying and comparing variants (models · quantity · maintenance tier), each with its own estimated value, and validate the one the customer will buy (master SAL-6).

PIP-13

Confirm to deal. The selected variant is confirmed into a Deal and seeds its quote lines (Deal.SourceOpportunity); the deal then carries the channel chain (PIP-4) through quote and close (master SAL-6, DM-50).

PIP-14

Activity timeline. Every email, call, visit, survey, meeting and note is logged against the contact and, where relevant, the funnel record, and shown as one blended bird's-eye timeline — activities plus journey milestones (lead captured … deal won) (master SAL-8).

PIP-15

Communications — the unified inbox. A central messaging surface (master SAL-9) that pulls every contact touchpoint into one threaded inbox across web form, email (sales@riversync.com), LINE, Instagram, Facebook, LinkedIn and logged phone calls, organized into the folders Inbox · Draft · Sent · Archived · Junk · Deleted. Each conversation is one channel thread tied to the contact / customer / partner it came from and to its related leads, opportunities and deals — so a sales user moves straight from a message to the relationship and its activity; sending or receiving also writes an activity (PIP-14) so the timeline stays the single history. The inbox is realtime: new inbound messages, delivery-state changes and folder moves are pushed to the client over a SignalR (WebSocket) hub and applied in place — no manual refresh — with optimistic local updates reconciled on the server ack. The list has a message search at its head and a filter control (icon + dropdown) that narrows it by channel, read status, attachments and relationship type (lead / customer / partner); the conversation actions live on a context-aware command bar — including Forward (forward the conversation) and Forward all (forward the entire thread, every message, on the same channel) alongside Archive, Junk, Mark unread and Delete — whose primary action (Reply / Send / Not junk / Restore) and Compose sit together at the bar's right edge. Distinct from customer↔support messaging. Prototype: the Communications nav group with all six folders (apps/pipeline/Inbox.html).

2Navigation & menu visibility

Initial prototype. The built Pipeline nav ships Communications (Inbox · Draft · Sent · Archived · Junk · Deleted, PIP-15), Relationships (Contacts) and Sales (Leads · Opportunities · Deals · Quotes · Closed). The Channel group (Partner tiers · Conversions, PIP-7/PIP-8) is deferred past this initial prototype and not present in the menu; the underlying requirements stay in the model for a later release. Pipeline is RiverSync-tenant only, so there is no tenant switch.

Pipeline is RiverSync-only (entitlement: riversync tenant — master AUTH-2) and is entitled only to the sales and admin roles; support, accounting and engineer are not entitled — the app does not appear in their switcher at all and every page is blocked on a direct visit (a not-entitled lock explains the role works in another console). Within the entitled set, Sales and Admin both reach every built surface — admin is fixed-full, and with the Channel group deferred there is no surface that only one of them holds; capabilities still follow the riversync permission matrix (RiverSync Permissions — Quotes and Pipeline are sales permissions; admin is fixed-full). Prototype: the Pipeline Tweaks panel switches the signed-in RiverSync role across all five roles — Sales (default) and Admin preview the app; Support, Accounting and Engineer preview the not-entitled lock. There is no tenant switch (one tenant — RiverSync).

Full visible, can act not entitled — hidden & blocked on direct visit
Menu itemAdminSalesSupportAcct.Engineer
Communications
Inbox unified multi-channel queue (PIP-15)FullFull
Draft · Sent · Archived · Junk · Deleted folders (PIP-15)FullFull
Relationships
Contacts graph & timeline (PIP-9, PIP-14)FullFull
Sales
Leads inbox · assign · convert (PIP-10/11)FullFull
Opportunities variants (PIP-12)FullFull
DealsFullFull
QuotesFullFull
Closed won / lostFullFull

The three — columns are not entitled to Pipeline at all: those roles work in Operations (support), Admin (accounting) and Field (engineer). My Account is not a Pipeline surface — every user manages their own account in the Account app and the top-bar profile menu, reachable from every app under one federated session (FED-3) and always-open even when unverified (FED-4).

3Open questions

4Revision history

VersionDateChanges
0.112 Jun 2026Initial draft — quotes, pipeline, partner attribution
0.212 Jun 2026Partner channel — PIP-4…6: channel chain with staff allocation & overrule, per-deal direct exceptions, registration intake (master PRT-9…12)
0.327 Jun 2026Navigation & menu visibility (new §2, proposed). A proposed Pipeline sidebar (Quotes · Pipeline · Intake) plus a role × menu-item visibility matrix across the five riversync roles — entitled only to sales + admin, the other three not entitled. Marked proposed — no built nav yet. Open questions and revision history renumbered §3–§4. No requirement-structure changes.
0.428 Jun 2026RiverSync owns the reseller tier (PIP-7, PIP-8 added). PIP-7 — a Partner tiers channel-review surface that shows each reseller's qualification scorecard, flags eligibility and lets RiverSync grant · hold · downgrade the tier (PartnerTierReview, partner.tier-changed); the reseller sees progress only. PIP-8 — a Conversions surface for the manual, audited reseller→distributor change (clears tier, reconciles open deals, registers distribution agreements; partner.subtype-changed). §2 nav gains a Channel group (Partner tiers · Conversions — admin+sales / admin-only); matrix + open questions updated. Cascades from master PRT-14…17 / SPEC-ERD DM-39…42 / SPEC-DDD Sales.
0.528 Jun 2026Sales front-of-funnel surfaces (PIP-9…14). Pipeline gains the CRM: Contacts + relationship graph (PIP-9), the Leads inbox across six sources with assign/share (PIP-10), qualify→convert to Opportunity (PIP-11), Opportunities + variant compare (PIP-12), confirm-to-Deal (PIP-13) and the blended Activity timeline (PIP-14). §2 nav adds a Relationships group (Contacts) and recasts Sales as Leads · Opportunities · Deals · Quotes · Closed (Intake folded into Leads, Pipeline → Deals); visibility matrix updated. Cascades from master SAL-1…8 / SPEC-ERD DM-43…52 / SPEC-DDD Sales (SVC-18).
0.628 Jun 2026Initial-prototype scoping. The Channel menu group — Partner tiers (PIP-7) and Conversions (PIP-8) — is deferred past this initial prototype and removed from the built Pipeline nav and §2 sidebar; the matrix keeps both rows marked deferred. PIP-7/PIP-8 stay in the requirement set for a later release. Confirmed Pipeline is RiverSync-tenant only — the prototype Tweaks panel drops the tenant switch (no signing in as customer/partner) and offers appearance only.
0.728 Jun 2026RiverSync-role access in Pipeline (§2 expanded). Documented the per-role access model for the built app: Pipeline is entitled to the riversync Sales and Admin roles only — both reach every built surface (admin fixed-full; Sales is the default seat); Support · Accounting · Engineer are not entitled and hit a not-entitled lock on every page. The prototype Tweaks panel gains a RiverSync role switcher (its own rs-role-pipeline persona, default Sales) covering all five roles to preview entitled vs not-entitled; still no tenant switch. No requirement-structure changes.
0.828 Jun 2026Communications — the unified inbox (PIP-15 added, §2 nav built). A central messaging surface pulling every contact touchpoint into one threaded inbox across web form · email · LINE · Instagram · Facebook · LinkedIn · phone, foldered Inbox · Draft · Sent · Archived · Junk · Deleted, each conversation tied to its contact/customer/partner and related leads/opportunities/deals; messages also write activities (PIP-14). §2 gains a built Communications nav group (six folders, Sales + Admin) above Relationships; visibility matrix updated. Cascades from master SAL-9 / SPEC-ERD DM-53 · DM-54 (Conversation · Message) / SPEC-DDD Sales. Prototype: apps/pipeline/Inbox.html.
0.928 Jun 2026Realtime inbox (PIP-15 amended). The communications inbox updates in realtime over a SignalR (WebSocket) hub — new inbound messages, delivery-state changes and folder moves are pushed to the client and applied in place, with optimistic local updates reconciled on the server ack. The manual Refresh control is removed from the command bar (no longer needed). No requirement-structure or model change — a delivery-mechanism note on PIP-15; the realtime push rides the existing message.received · message.sent · conversation.foldered domain events (SPEC-DDD Sales).
0.1028 Jun 2026Inbox list controls (PIP-15 amended). The conversation list gains a message search at its head and a filter control (icon + dropdown) narrowing the list by channel · read status · attachments · relationship type (single-select per facet, active-filter count badge, clear-all). The command bar's primary context action (Reply / Send / Not junk / Restore) is relocated to sit beside Compose, sharing its filled style. UI/prototype change only — no requirement-structure or model change.
0.1128 Jun 2026Inbox forwarding (PIP-15 amended). The command bar gains Forward (forward the conversation) and Forward all (forward the entire thread — every message — on the conversation's own channel), each opening an outbound compose and writing an Activity; the primary action (now an icon-only Reply) and Compose sit together at the bar's right edge. Realizes master SAL-9 (amended); cascaded to DM-54 (ERD), the conversation.forwarded event + forward route (DDD), the Communications process (PWF) and the Conversation lifecycle (DWF).
0.1228 Jun 2026Communications design specification (new doc, PIP-15 cross-referenced). Published SPEC-UX-COM — the comprehensive, build-ready design spec for the unified inbox: layout grid + annotated wireframe, command bar, list (search / filter / row anatomy), reader & composer, compose modal, the seven channels, every interaction & state incl. delivery states, the SignalR realtime contract with optimistic reconcile, activity logging & cross-links, accessibility/keyboard/motion and full design-system mapping. A presentation view over the settled model — no requirement-structure or model change (no new entities, fields, events or rules). Registered as the first document of a new Design specs doc family (SPEC-UX) in docs-nav.js; linked from this PRD's cross-references.
0.1328 Jun 2026My Account removed from the §2 visibility matrix. My Account is not a Pipeline surface — every user manages their account in the Account app and the top-bar profile menu, reachable from every app under one federated session (FED-3) and always-open even when unverified (FED-4). The built PIPELINE_NAV already carries no Account group, so the matrix now matches the prototype. Navigation-documentation only — no requirement or data-model impact. Mirrors the same change in SPEC-APP-PAR v0.7.
0.1429 Jun 2026Shared-funnel framing (§2 navcap). Made explicit that Pipeline's five Sales rungs (Leads · Opportunities · Deals · Quotes · Closed) are the one platform funnel the Partners app now also speaks (PAR-12) — the same records, with Pipeline the system of record (all five rungs, unscoped) and reseller/distributor seeing role-scoped lenses; stage hand-offs ride the existing lead.assigned · deal.registered · deal.channel-changed · deal.won events. Cross-links the three-party responsibility map in SPEC-APP-PAR §3. Documentation-only — no requirement or model change; aligns with SPEC-APP-PAR v0.8 and SPEC-PRD-SAL §10.
RiverSync Co., Ltd. · BangkokSPEC-APP-PIP · 1 of 1